Computer-aided modeling

ABSTRACT

To enable the utilization of a definition or definitions once made as the definitions of a similar object, a set of conditions for similarity including one or more conditions is defined and a set of definitions, which explicitly or inexplicitly indicates one or more definitions, of which at least one will be applied, and a similar object is searched for. If the set of definitions is related to an object which was used as the basis for defining the set of conditions for similarity, the set of definitions is applied to the object found. If the set of definitions is related to an object to be found, the set of definitions of the object found is applied to the object which was used as the basis for defining the set of conditions for similarity.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of copending application Ser. No.11/285,287 filed on Nov. 23, 2005; which claims the benefit of U.S.provisional application Ser. No. 60/635,980 filed Dec. 15, 2004; whichclaims the benefit of priority to Finnish application 20045459 filedNov. 25, 2004. The entire contents of each of the above-identifiedapplications are hereby incorporated by reference.

FIELD

The invention relates to computer-aided modeling and particularly todefinitions of the modeled object.

BACKGROUND

Modeling means that a model is created from the object under design fordescribing the object to be manufactured. The development of dataprocessing systems and computers has transformed modeling into acomputerized process, where a product model is created from the object.For example, the product model of a building is an entity consisting ofthe product data on the life span of the building and building process.The product model of a building describes the product data of thebuilding outlined in accordance with the product data model. Thebuilding product model may be stored as a database of a computerapplication or as a file suitable for data transfer. Computerapplications describe the real-world building elements of the buildingusing building element entities that are processed by the applications.

The modeling by means of computer applications involves two differentapproaches to modeling: bottom-up and top-down. The bottom-up approachis based on a principle of forming a piece from details; each edge ofthe piece is drawn in the program and the piece is formed as a sum ofall details. The formation of pieces is facilitated by a library whereall piece forms included in the design have been stored. A ready-madepiece form can be selected from the library and its different parts maybe given parameters, whereby several different pieces can be obtainedfrom one piece form. If the number or order of edges changes, a newpiece form is stored in the library. The top-down approach is based onthe principle of providing a piece with details; a piece is createdfirst and then provided with details. The top-down modeling has beenfacilitated by dividing an entity into smaller entities, such asseparate building elements, joints and details programmed into themodeling program. The most typically used building elements can becreated by combining smaller programmed entities known as programsnippets. Objects are modeled by parametrizing, i.e. by giving start andend points as well as definitions defining various properties of thepiece, such as location, material or type of cross section. Pieces canalso be parametrized according to the environment. The top-down approachdiffers from the bottom-up approach also in that the piece form is notstored in the library but the outcome is only a set of the piece'sparameters (set of definitions) in the design. There is no piece formlibrary similar to the one employed in the bottom-up approach. Top-downmodeling is described in greater detail in the applicant's U.S. patentapplication Ser. No. 11/165,043, where the parametric modeling describedrepresents top-down modeling.

A problem associated with top-down modeling is, in fact, caused by thelack of a piece form library, for which reason there is no link betweenidentical and similar pieces. When a drawing, for example, is made of apiece, the user sets the desired view angles and measures for thedrawing and the same drawing, more precisely the drawing templateprovided by the drawing, could be used for pieces of the similar type.In the bottom-up approach, this is easy in the case of a stored pieceform because a drawing can be linked as a drawing template with alibrary element. In that case, the same drawing template can be usedwhen a drawing is made of a piece created using the same piece form. Inthe top-down approach, this is not feasible because there is no pieceform library, and thus the user has to make the drawing of each pieceseparately. The same problem comes up both in the top-down and in thebottom-up approach when a drawing is made of an object that is an entityconsisting of several pieces or when detailed drawings are made ofsimilar parts of a piece.

SUMMARY

The object of the invention is to provide a method and an apparatusimplementing the method to solve the above-mentioned problems. Theobject of the invention is achieved by a method, modeling system andsoftware product, which are characterized by what is stated in theindependent claims. Preferred embodiments of the invention are describedin the dependent claims.

The invention is based on detecting the problem and solving it byemploying a mechanism which enables using a definition once made for anobject in defining a similar object or as a basis for definition. It issufficient to define a condition or conditions for similarity explicitlyor implicitly, and a similar object is found on the basis of theconditions and either the definition of the similar object is applied tothe object found or the definition of the object found is applied to thesimilar object. The object refers to any created object, regardless ofwhether it is an entity assembled from several objects (an object withsub-objects) or a part of an entity (sub-object). The similar objectrefers to an object that sufficiently resembles another object. Whetheran object sufficiently resembles another is defined by means of theconditions for similarity.

An advantage of the invention is that a definition once made or adefinition set consisting of several definitions need not be re-maderegardless of whether the definition is related to an object formed by asingle piece, to an object formed by several pieces or to an objectwhich is part of a larger entity. A further advantage is that thedefinition is applicable to a similar object, i.e. the object needs notbe identical.

BRIEF DESCRIPTION OF THE FIGURES

The invention will now be described in greater detail by means ofpreferred embodiments with reference to the accompanying drawings, inwhich

FIG. 1 is a simplified block diagram of the architecture of an exemplarysystem;

FIG. 2 illustrates a mechanism according to the invention;

FIG. 3 is a flow chart illustrating an embodiment of the invention;

FIGS. 4A, 4B and 4C illustrate the application of the mechanismaccording to the invention in the creation of drawings; and

FIG. 5 is a table illustrating different embodiments of the mechanism.

DESCRIPTION OF SOME EMBODIMENTS

The present invention is applicable to any computer-aided modelingsystem where an object may be associated with definitions, which may beeither definitions or grounds for definitions for similar objects orwhich may be derived from the definitions of a similar object.

In the following, the invention will be described by using an exemplarysystem where the program of the invention is run in a personal computerby utilizing a run-time database comprising information to be stored andalready stored in a disc memory of the computer on the entire objectmodeled/to be modeled, for instance a building, without restricting theinvention thereto. In another embodiment of the invention, anobject-oriented database or a relation database, for example, can beutilized and used over a network from one or more terminals, forinstance. Various programming techniques, storage of data in memory andmanners of implementing databases develop constantly. This may requireextra changes in the invention. Consequently, all terms and expressionsshould be interpreted broadly, and they are intended to describe, not torestrict, the invention.

FIG. 1 illustrates a simplified modeling system describing only theessential parts of the logical units of the system whose implementationmay deviate from what is presented. It is obvious to a person skilled inthe art that the system may also comprise other functions and structuresthat need not be described in greater detail here. The more detailedstructure of the system is irrelevant to the actual invention.

The modeling system 1 illustrated in FIG. 1 comprises a personalcomputer provided with a user interface 11, processor 12 and memory 13.

The user interface 11 is the interface of the user, i.e. the personprocessing the model, to the modeling system. The user can create amodel, modify a model, study it, and print desired figures and reportsof it, etc. For example, the manner of inputting information into themodeling system to be described later is irrelevant to the invention.

In accordance with the different embodiments of the invention, theprocessor 12 carries out tasks according to the invention. The memory 13comprises, for example, program snippets defined as part of a program,which constitute “program libraries”, and data stored/to be storedduring modeling, such as object definitions. In the exemplary system,data are stored in the memory in a file, for instance, and duringprocessing the data constitute a “run-time database” in the centralmemory where they are read from a disk memory and where they can beprocessed faster. When the processing ends, the run-time data of thedatabase, or at least the modified data, are stored in the disk memory.It is obvious to a person skilled in the art that data can be stored inone or more files and/or they can be stored/processed in another formand/or by using other memories.

The modeling system illustrated in FIG. 1 represents the simplestmodeling system. In larger modeling systems, the user interface may be aterminal and the memory a database with which the terminal communicatesvia a server. The server performs functions of the processor of theexemplary system, or at least some of them, allowing also the terminalto carry out functions of the processor of the exemplary system. Theremay be one or several networks between the terminal and the server. Theymay comprise several terminals and servers with databases, which arepreferably integrated to be visible to the modeler as one database andone database server. Whether the functions of the system to be describedin the following are performed in a terminal, in a database server or sothat some of them are performed in a terminal and some in a databaseserver, i.e. the location where the database data are processed, isirrelevant to the invention.

FIG. 2 is a flow chart illustrating the basic functionality of themechanism according to the invention. In other words, it shows thefunctionality according to the invention in a very simplified manner.Usually, the need to search for similar objects initiates the mechanismaccording to the invention.

FIG. 2 starts from step 201, where the similarity to be searched for isdefined. The similarity to be searched for is typically defined bygiving one or more conditions for similarity. These conditions (or thecondition) constitute a set of conditions for similarity. The set ofconditions may include various search criteria, tolerances and/or limitvalues. A condition (or conditions) may be defined for example by a userby giving conditions for similarity or by a modeling program byanalyzing objects in a drawing, or the user may supplement and/or modifythe conditions provided by the modeling program. The conditions (or thecondition) for similarity may depend on the use, i.e. what initiates thesearch for similar objects, and the modeling program may be configuredto determine the conditions from the use. The invention does not in anyway limit the nature of the similarity conditions or how they aredefined. Examples of defining similarity are described in connectionwith FIGS. 4A and 5.

After the similarity to be searched for has been defined, a set ofdefinitions indicating explicitly or inexplicitly the definition ordefinitions that is/are to be applied is defined in step 202. Inprinciple, the set of definitions can be applied either to the objectfound by means of the conditions for similarity or to the object used indefining the conditions for similarity. The set of definitions can thusexplicitly or inexplicitly indicate the object to which it is applied.The set of definitions may also include an object that becomes part ofthe object to which the set of definitions is applied. The inventiondoes not in any way limit the nature of the set of definitions or how itis defined. Examples of a set of definitions are illustrated in FIGS. 4Aand 5.

After this, similar objects are searched for (step 203). This may beperformed, for example, by searching for objects having as theirparameter the same piece type (for example the piece number), the sameprofile type (for example the type number), the same name and/or localposition, such as position in a model, for example third-floor beams,location within the object, for example distance from an end, orrelative location, for example the distance of a beam from an end, orrelative location, for example at the end of a beam. A similar objectcan be searched for in the data of one model, or in the data on earliermodels, which may have been stored in a database or in a databank, whichmay be in the Internet, for instance. The invention does not in any waylimit the manner in which similar objects are searched for, where theyare searched for, or where the data have been stored. The object issimilar when it fulfills the condition or conditions defined forsimilarity in step 201.

When a similar object is found (204), the set of definitions (step 205)is applied either to the object found or to the object used in definingsimilarity. As stated above, the set of definitions may indicate wherethe set of definitions is to be applied. In some embodiments, the usermay define where the set of definitions is applied or the modelingprogram may comprise means for concluding the object of applications ormeans for inquiring the object of application. FIGS. 4A, 4B and 4Cillustrate this application step.

After the applying has been finished, the applied set of definitions ora link to the set of definitions to be applied can be stored (step 206)in connection with the object to which it was applied. Thus the storeddefinitions or link preferably become part of the definitions of theobject in question and are applicable to another object.

FIG. 3 is a flow chart illustrating an embodiment according to theinvention where definitions of the object found on the basis ofsimilarity are applied to an object. The function shown in FIG. 3 may beinitiated by a drawing command from the object, for instance.

FIG. 3 starts from step 301, where an object for which a definition isto be obtained is given. This can be carried out by giving a command“create a drawing for this object”. At the same time, a set ofdefinitions is defined implicitly. Then a set of conditions forsimilarity is defined separately in step 302 in this embodiment. Theuser may define it by selecting, for example, the parts or pieces of anobject that belong to the desired situation. In addition, the user maydefine how many pieces or what kind of pieces the object must at leastcontain for the object to be similar. The set of conditions may alsoinclude conditions on which parts should be connected to each other andhow close to each other certain parts must be. The set of conditions mayalso include a condition that a similar object must be found in themodel.

Then similar objects are searched for in step 303. If an objectfulfilling the set of conditions is found (step 304), it is checked instep 305 whether the object found has the desired definition (forexample drawing definitions). If the object does not have one, themethod returns to step 303 to search for similar objects. If the objecthas one (step 305), the object found and its definitions are shown tothe user in step 306 and the user is asked whether the object found andits definitions are the desired ones (ok). If the user thinks that theyare (step 307), the object is placed in the collection of found objectsin step 308 and in step 309, the user is asked whether he wants tosearch for more similar objects. The method proceeds directly to thisstep 309 from step 307 if the user thinks that the object found is notthe desired one. If the user wants to search for more objects, themethod returns to step 303, where more objects are searched for.

If the user does not want to search for more objects (309), thecollection of found objects is shown to the user in step 310 so that hecan select the object whose definitions are to be applied from among thefound objects. After the user has made the selection, the definitions ofthe found object are applied in step 311 to the object given in step301, and in step 312, the definitions or link to the definitions thusobtained are stored. The stored definitions can be employed in theapplication, for example, exactly in the same way as the definitionscreated by prior art methods.

If no more similar object was found or no similar object was found atall (step 304), it is checked in step 313 whether the collection offound objects is empty. If it is not, the method continues from step310, where the collection of found objects is shown to the user.

If the collection of found objects is empty (step 313), the user isinformed in step 314 that no objects in accordance with the conditionswere found and the user is asked whether he wants to change theconditions for similarity. If the user wants to change the conditionsfor similarity (step 315), the method will continue from step 302, wherea set of conditions for similarity is defined. If the user does not wantto change the conditions for similarity (step 315), in this example, hehas to create a definition in step 316 that is then stored in step 312.

In an embodiment according to the invention, the nature of the objectthat was selected can also be stored in connection with step 311 asdescribed above. The mechanism according to the invention may utilizethis information when searching for the next similar object; forexample, the mechanism may offer the most suitable object by default,and if the user does not regard it as suitable, search for other objectsconforming to the conditions as described above. A databank of defaultvalues is created at the same time.

In an embodiment according to the invention, the set of conditions maybe hierarchic; for example, the user may have defined a hierarchy forthe conditions or the mechanism according to the invention may havecreated a hierarchy. This hierarchy can be employed in the search forsimilar objects as follows, for instance: if similar objects inaccordance with the conditions are not found, the conditions of thelowest hierarchy level are deleted from the set of conditions andsimilar objects are searched for on the basis of the remainingconditions.

Information on which object and/or object definition has been utilized,how it has been utilized, how many times and by whom can be stored. Thisinformation may be used, for example, in selecting objects anddefinitions to be stored in a databank. The information can also beutilized by searching for objects fulfilling the set of conditions or byselecting the objects to be shown to the user from among the objectsfulfilling the set of conditions based on how the objects have been usedearlier.

The steps illustrated in FIGS. 2 and 3 are not in an absolutechronological order and they can be performed deviating from the givenorder or simultaneously. Some of the steps, such as the storing step 206in FIG. 2, the display step 306 in FIG. 3 or other corresponding stepsrelated to the user's interaction, can also be omitted or replaced bydefinitions/settings made in the modeling program. For example, themodeling program may include a setting according to which three objectsthat fulfill the conditions best are always shown to the user and, ifthe conditions for similarity are strict and thus three objects are notfound, the program may be configured to modify the conditions forsimilarity, for example to drop the last condition. The steps describedabove or only some of them can be repeated on the sub-objects of theobject in the applying step, for instance. Other functions may beperformed between the described steps or simultaneously with them. Forexample, after step 310 in FIG. 3, the user could be asked whether thefound objects are sufficient or whether he wants to change theconditions, after which the process continues according to the user'sanswer.

FIGS. 4A, 4B and 4C illustrate application of the mechanism according tothe invention in the creation of drawings by means of an example. FIG.4A illustrates the defining of similarity and a set of conditions, andFIGS. 4B and 4C illustrate the application of the set of conditions. Inthe creation of drawings, logical definitions are preferably employed,which are explained in greater detail in the applicant's U.S.application Ser. No. 10/840,250, which is incorporated herein byreference.

FIG. 4A illustrates a drawing created for an object which has beenadapted to the desired form and stored as drawing data in the model.Then this model is used as the drawing template for the drawings ofsimilar objects. The user or the modeling program or the user and themodeling program together define an object having parts similar to partB (for example the same piece type) and a part similar at least to partE, D or C as conditions for similarity. The conditions for similaritymay also include other conditions, such as a condition related to theobject location. The set of definitions is defined either by the user,who gives a command “create corresponding drawings for othercorresponding objects”, for example, or the modeling program determinesthe set of definitions. In this example, the set of definitions willthus consist of the definitions for the drawings of FIG. 4A, i.e.measures a, b, c, d, e, f and g so that measure g is assigned to part A,measure f to part B, measure e to part C, measures a and b to part D,and measures c and d to part E. The modeling program preferably knowsthe set of definitions since the drawing was processed, andconsequently, the user does not need to define the set of definitionsseparately.

After this, the modeling program goes through the whole model andsearches the model for objects that fulfill the conditions forsimilarity defined above and, always after finding an object/objects,repeats the adjustment of definitions. The definitions are adjustedusing the definitions in the drawing template of FIG. 4A, by searchingfor the counterparts of the original object (i.e. FIG. 4A) and theobject found, by checking the definitions related to them and byassociating the drawing template with the object found (i.e. by storingthe adjusted drawing or a link to the drawing definitions of FIG. 4A).

In this example, the modeling program finds the objects of FIGS. 4B and4C in the model. After the object of FIG. 4B has been found,counterparts are searched for. In the case of the object of FIG. 4B, A′corresponds to the original A, B′ to the original B and D′ to theoriginal D. No counterparts were found for the original E and C. Thenthe set of definitions is applied: measure g′ is assigned to part A′,measure f′ to part B′ and measures a′ and b′ to part D′, after which thedrawing of FIG. 4B is shown to the user and it can be stored in themodel or a link to drawing 4A can be stored as the drawing of FIG. 4B.

Counterparts are also searched for after FIG. 4 C has been found. InFIG. 4C, B″ corresponds to the original B and E″ to the original E butno counterparts are found for the other parts. Thus the drawing willonly include measure f′ for B″ and measures c″ and d″ for E″, afterwhich the drawing of FIG. 4C is shown to the user and it can be storedin the model or a link to drawing 4A can be stored as the drawing ofFIG. 4C.

The mechanism could also be employed reversely: for example, afterhaving modeled the object of FIG. 4C, the user could give all the partsincluded in the object as the condition for similarity, define a set ofdefinitions by giving a command “create a drawing”, in which case thedrawing definition of a similar object will constitute the set ofdefinitions. Having found object 4A and its drawing definitions, themodeling program would apply these to the object of 4C, which wouldyield the drawing shown in FIG. 4C as the outcome.

Yet another alternative to employ the mechanism is based on assumptionthat drawing definitions shown in FIGS. 4B and 4C are stored in adatabank, for example. After having modeled the object of FIG. 4A (orFIG. 4A could be the whole model), the user may give a command “create adrawing”. In response to the command, the modeling program starts tosearch for objects with drawing definitions, which objects, or parts ofobjects, logically correspond to some part of the modeled object. Havingfound objects 4B and 4C with their drawing definitions, the modelingprogram would apply these to the object of 4A, which would yield thedrawing shown in FIG. 4A as the outcome with the exception that measure“e” would be missing and the user would have to add it, i.e. modify theoutcome. Depending on the implementation or the user commands, themodeling program may also provide detail drawings of the object of 4A,the detail drawings resembling drawings in FIGS. 4B and 4C but havingthe measures of the object of 4A.

The table in FIG. 5 illustrates other examples of the ways in which themechanism can be used. Column 5-A shows various conditions forsimilarity, column 5-B definition sets and column 5-C use.

The example shown in row 5-1 of the table in FIG. 5 is also related tothe drawings. For example, if desired, a drawing of a detail can beinserted into the drawing of an object by utilizing drawing definitionsof a similar detail already stored in the model or databank. When newdrawings are created or old ones modified (due to a modification of themodel, for example), the model (or databank) can be searched for adrawing detail for a similar use. The condition for similarity is thus asimilar use (the parts that are related to each other this way), and theset of definitions consists of the drawing definitions of the detailthat are applied as described above by identifying counterparts andupdating the drawing data to conform to the counterpart. In anembodiment, the user may specify the conditions for similarity bygiving, for example, the following further conditions “at least one parthere and one part there, at least these parts must be present or theseparts need not be present”. The drawing can be compiled fromsub-entities by going through all the details related to the object. Adedicated detail drawing can be made of each detail or each differentdetail. If, for example, a beam is fastened at its ends and a lower beamis attached to the middle of the beam, the beam has different fasteningdetails at the ends and in the middle. In that case, the drawing of thebeam can be created by searching for a dedicated drawing template bothfor the beam and each detail; on the basis of the part for the beam andon the basis of the use for the details. When the drawing template isfound, counterparts are searched for, measurements updated and a drawingcompiled from the drawing part obtained on the basis of the drawingtemplate for the beam and from the drawing parts obtained on the basisof the drawing templates for the details. In an embodiment, the programis further configured to identify exactly the same details and printonly one drawing of them.

The example illustrated in row 5-2 in the table of FIG. 5 is related tocontrolling the manufacturing process. It allows finding the objectsbelonging to the same family in the model, i.e. the objects having asimilar manufacturing process. For example, the same mold can be used inthe casting of various concrete parts having different fittings or inthe compilation of trusses having different fittings by the sametemplate (scheme). These parts are found when a similar basic form isdefined as the condition for similarity. Since the conditions forsimilarity include no details, objects having differing details butbelonging to the same family can be found. The objects found by means ofthe family identifier can further be classified utilizing thesimilarity, which enables a better controlling of the manufacturingprocess. Classification can be carried out by giving the material usedand/or similar details within certain tolerances as the condition forsimilarity. Thus the mechanism according to the invention also allowsfinding non-identical objects under the same family identifier. Forexample, beams having different lengths and manufactured in the samemold can be given the same identifier.

The example in row 5-3 in the table of FIG. 5 illustrates how themechanism according to the invention can be employed in the creation ofnew building elements when the creation starts from a schematic part. Inthat case, the condition for similarity is defined as the object thathas been in a logically corresponding situation and the objectdefinitions constitute the set of definitions. Then an object that hasbeen in a logically corresponding situation is searched for in the modelor databank, for instance. When/if such is found, the definitions areapplied by modifying the schematic part to correspond to the objectfound. Naturally, parameters dependent on the location and surroundingobjects are updated at the same time and a new part (object) or a linkto the data for creating it are stored in the model data.

The same principle and definitions can also be applied without theschematic part when, for example, the modeling program, on analyzingloads, notes that one part will not sustain the loads to which it issubjected and starts searching for an object that has been in alogically corresponding situation for that object.

The example in row 5-4 in the table of FIG. 5 illustrates how themechanism according to the invention also allows propagation of themodification made to the object to other corresponding objects of themodel. The following can be given as the condition for similarity: theobject on which the modification has been performed, the object andparts related to it, parts included in the object, other objects and/ortheir relative location to one another. This way the conditions forsimilarity may ensure that the modification will be carried out on allthe parts on which it should be but not necessarily on all parts withthe same form. The modification made to the object constitutes the setof definitions. When a similar object is found, the definition isapplied by copying the modification into the corresponding point. If,for example, a stiffening member were to be added to part B in FIG. 4Aand the same conditions for definitions were given as earlier inconnection with FIGS. 4A, 4B and 4C, the stiffening member would also becopied into parts B′ and B″. If objects including parts A, B, C, D and Ewere defined as similar, the stiffening member would not be copied intothe object of FIG. 4B or into the object of FIG. 4C. This enables themodification of all similar objects or objects in a similar situation,for instance.

This propagation of the modification made to an object can also be usedin modifying a part of an object, such as carry handles or differentloops suitable for lifting and/or carrying. In that case, the conditionfor similarity may be, for example, “a lifting loop at the top edge ofthe object”. The same propagation can also be employed in the copying ofthe properties of an object or an object part. For example, if an objecthaving one attribute more than similar earlier object has been modeled,the model is searched for similar objects and the same attribute iscopied into them. Naturally, the value of the attribute is updated, ifnecessary.

The same principle related to modification can also be employed inupdating joints since, in the top-down approach, the final form of theobjects depends on the size and position of the parts related to theobject and on the joints used. When the model changes, joints must beupdated. In updating the joints, it is advantageous to retain the partsalready created if the corresponding parts also exist in the situationfollowing the modification. The mechanism according to the inventionallows identification of any counterparts between the old and themodified status of the object by means of the conditions for similarity,modification of the counterparts to correspond to the new situationbrought about by modification, creation of the new parts created in themodification and removal of the parts deleted in the modification. Thisway it can be ensured that modifications and additions made to singleparts are retained and propagated. This also has the advantage that iteliminates the problem associated with some prior art solutions which donot include a separate “modify” function but modifications are made bymeans of the “create” and “remove” functions, whereby the old parts of ajoint cannot recognize a modified part, which is, in fact, an old part.Now old parts will “notice” similarity.

The example in row 5-5 in the table of FIG. 5 illustrates theapplication of the mechanism according to the invention in situationswhere part of a joint, for example, changes. It is irrelevant into whichthe part changes. The entities/parts included in the joint concerned canbe defined as the conditions for similarity and their attributes as theset of definitions. The command “modify joint” given to the applicationincludes associating the entities/parts of the joint and theirattributes and links with the new situation and the joint with its linksare adapt to the new situation.

In the prior art top-down approach, the designing of joints isfacilitated by defining and storing various joints in program libraries,from which the program selects the correct joint on the basis of certainrules (joint selection rules) depending on the joint situation or on thejoint to be achieved, for example what kind of beams are joinedtogether. The invention simplifies the reaction of the selected joint tomodifications as well as the selection of joints without joint selectionrules. Row 5-6 in the table of FIG. 5 illustrates an example of how acorrect joint can also be selected utilizing the mechanism according tothe invention without defining the joining situation. When “the bestmatch for this joint location”, for example “the best match when a beamis joined with a beam that is twice as high”, is set as a condition forsimilarity and the set of definitions of the best match as the set ofdefinitions, the set of definitions is applied by creating a joint inaccordance with the best match at the joining point, naturally byadjusting the measures. The modeling program preferably defines theconditions for similarity. Thus the joint is found without rules and themodel is, in a way, taught that a certain joint belongs to a certainlogical situation. “A similar location for a joint” can also be definedas the condition for similarity, “joint” or “joint parameters” as theset of definitions and “create a joint” or “ give parameters to thejoint” for application, and thus the model can be provided with acorrect joint and/or the joint with correct parameters. Compared to therule-based solution, the mechanism according to the invention provides amore generic solution for designing joints. The mechanism functions in acorresponding manner when a selected joint should react tomodifications.

In view of the above, it is clear that the mechanism according to theinvention can also solve problems other than the modeling problemsrelated to drawings. The mechanism solves the problems caused in thetop-down approach by the lack of object library in the bottom-upapproach but also problems that exist even though the library wereavailable. For example, since a modification is propagated by means of alibrary object, the modification will be included in all objects createdby this library object regardless of where they are. The mechanismaccording to the invention enables focusing the propagation ofmodification better. The invention also speeds up the performance ofmodifications; for example, the cross section of a through hole can bemodified by the mechanism according to the invention without having tocarry out the modifications one at a time.

The example shown in row 5-7 of the table in FIG. 5 is also related tothe drawings. It differs from the example shown in row 5-1 in thatobjects corresponding to objects having already drawing definitions aresearched for in a model, and one or more drawings are made for the modelon the basis of the found drawing definitions. In other words, itillustrates a situation in which drawings of an object (or even drawingsof a whole model) including detail drawings will be created preferablyautomatically utilizing already existing drawing definitions, so calledtemplate drawings, stored in the model or in a databank, for example. Inthat case, the condition for similarity is defined as an object or partof an object for a logically similar use and having drawing definitions,and the set of definitions consists of the drawing definitions of thefound object that are applied as described above by identifyingcounterparts and updating the drawing data to conform to thecounterpart. In other words, if a drawing template for a logicallysimilar structure is found, a drawing for that part of the modeledobject is created. The drawing thus created may be later combined withother corresponding drawings in order to obtain a drawing for the wholeobject modeled. The thus created drawing may also be used later as atemplate drawing.

The example of row 5-7 can be used, for example, to assist withdecisions on which kind of drawings are to be made from a model. Forexample, such details/parts of a model may be searched for whichcorrespond to details/parts for which drawings have been made in anothermodel, and preferably each time such a detail/part is found, a drawingis created. It is also possible to search for logical structures fromwhich a drawing is typically made and preferably each time such alogical structure is found, a drawing is created. Information on suchlogical structures may be maintained in the modeling program, in adatabase, in a databank, or in the Internet, for example. The examplesand embodiments given above may be combined with the example of row 5-7.

Even though the invention was described above by means of examples wherethe mechanism according to the invention was utilized in the creation ofa product model, it is obvious to a person skilled in the art that it isalso applicable to other modeling-related functions.

The modeling system implementing the functionality according to theinvention comprises, in addition to the means required in prior artmodeling, means for finding similar objects and for applying a set ofdefinitions defined for an object to another object. More precisely, itcomprises means for implementing at least one of the embodimentsdescribed above. Existing personal computers or terminals and databaseservers comprise processors and memory that are applicable in thefunctions according to the invention. All the modifications andconfigurations required by the implementation of the invention can beexecuted as added or updated software routines, by application circuits(ASIC) and/or by configuring an existing system in some other way, inparticular a modeling program. The software/software routine(s) can bestored in any computer-readable storage medium.

It is obvious to a person skilled in the art that, as technologyadvances, the inventive concept can be implemented in various ways. Theinvention and its embodiments are thus not limited to the examplesdescribed above but they may be varied within the scope of the claims.

1. A method of utilizing the definition of a first object modeled bymeans of a computer program for computer-aided modeling, the methodcomprising: defining, by a processor programmed to performcomputer-aided modeling, a set of definitions of a first situation, theset of definitions indicating explicitly or inexplicitly at least onedefinition amongst definitions of the first object that represents areal world article modeled by using the processor programmed to performcomputer-aided modeling, the at least one definition of the first objectrelating to the first situation and being defined by means of thecomputer pro-gram; defining, by the processor programmed to performcomputer-aided modeling, a set of similarity conditions comprising atleast one similarity condition defining upon a situation being similarenough with the first situation; searching, by the processor programmedto perform computer-aided modeling from a memory, for a second object ina situation fulfilling the set of similarity conditions, the secondobject representing another real world article modeled by using theprocessor programmed to perform computer-aided modeling; finding, by theprocessor programmed to perform computer-aided modeling, at least onesecond object in a situation fulfilling the set of similarityconditions; and applying, by the processor programmed to performcomputer-aided modeling, the set of definitions of the first situationto create a corresponding set of definitions to the at least one secondobject in the situation fulfilling the set of similarity conditions. 2.The method according to claim 1, wherein the set of definitionscomprises drawing definitions of the first object; and on applying theset of definitions, a drawing or a part of drawing of the second objectis created in accordance with the drawing definitions of the firstobject.
 3. The method according to claim 1, wherein the set ofsimilarity conditions relates to a logically similar use for which thefirst object already has drawing definitions; the set of definitionscomprises drawing definitions of the first object; and the set ofdrawing definitions of the first object is applied to the second objectfor creating a drawing or a part of drawing of the second object inaccordance with the drawing definitions of the first object.
 4. Themethod according to claim 3, wherein a logically similar use is searchedfor each existing drawing definition and if a logically similar use isfound, a drawing or a part of drawing is created.
 5. The methodaccording to claim 1, wherein the set of similarity conditions comprisesa condition or conditions related to the similarity of the manufacturingprocess; the set of definitions to be used comprises an identifier ofthe first object; and the same identifier is given to the second objectupon the set of definitions being applied.
 6. The method according toclaim 1, wherein the set of similarity conditions comprises a logicallycorresponding situation; the set of definitions to be used comprises anattribute or attributes of the first object; and on applying the set ofdefinitions, an object corresponding to the object found is modeled forthe logically corresponding situation.
 7. The method according to claim1, wherein the set of similarity conditions comprises an additionalcondition according to which an object best corresponding to the rest ofthe set of similarity conditions is selected; the set of definitions tobe used comprises the set of definitions of the object with the bestcorrespondence; and the set of definitions of the object with the bestcorrespondence is used on applying.
 8. The method according to claim 1,wherein the second object in the situation fulfilling the set ofsimilarity conditions is searched for in one of a model or databank. 9.A method comprising: defining, by a processor programmed to performcomputer-aided modeling, a set of similarity conditions comprising atleast one similarity condition defining upon a situation being similarenough with a first situation, the first situation relating to a firstobject representing a real-world article and being modeled using theprocessor programmed to perform computer-aided modeling; searching bythe processor programmed to perform computer-aided modeling from amemory for a situation fulfilling the set of similarity conditions;finding, by a programmed processor, a similar situation, the similarsituation relating to a second object representing another real-worldarticle and being modeled by the processor programmed to performcomputer-aided modeling; defining, by the processor programmed toperform for computer-aided modeling, a set of definitions of the similarsituation, the set of definitions indicating explicitly or inexplicitlyat least one definition amongst definitions of the second object thatrelate to the similar situation; and applying by the processorprogrammed to perform computer-aided modeling, the set of definitions ofthe similar situation to create a corresponding set of definitions tothe first object.
 10. The method according to claim 9, wherein the setof definitions comprises drawing definitions of the second object; andon applying the set of definitions, a drawing or a part of drawing iscreated for the first object in accordance with the drawing definitionsof the second object.
 11. The method according to claim 9, wherein theset of similarity conditions comprises a condition or conditions relatedto the similarity of the manufacturing process of real-world articles;the set of definitions to be used comprises an identifier of the secondobject; and the same identifier is given to the first object upon theset of definitions being applied.
 12. The method according to claim 9,wherein a second object in a situation fulfilling the set of similarityconditions is searched for in a model or databank.
 13. The methodaccording to claim 9, further comprising searching for at least apredetermined number of second objects fulfilling the set of similarityconditions; and selecting the one whose set of definitions is beingapplied.
 14. The method according to claim 13, further comprisingstoring data on the selected second object and on how the second objecthas been used; and utilizing the stored data in the search for secondobjects.
 15. A method comprising: defining, by a processor programmed toperform computer-aided modeling, a set of similarity conditionscomprising at least one similarity condition a similarity conditiondefining at least one of the following: upon a model of a buildingelement entity being similar enough to a model of a first buildingelement entity, upon at least a part of a model of a building elemententity being similar enough to at least a part of the model of the firstbuilding element entity, and upon a model of a building element entitybeing in a similar enough situation as the model of the first buildingelement entity, each model being modeled using the processor programmedto perform computer-aided modeling; defining, by a programmed processor,a set of definitions that will be used, the set of definitionsindicating explicitly or inexplicitly at least one definition amongstthe definitions in the model of the first building element entity;searching, by the processor programmed to perform computer-aidedmodeling from a memory comprising models of building element entitiesmodeled using the processor programmed to perform computer-aidedmodeling, for a model of a building element entity fulfilling thedefined set of similarity conditions; finding, by the processorprogrammed to perform computer-aided modeling, a similar model of abuilding element entity; and using, by the processor programmed toperform computer-aided modeling, the defined set of definitions tocreate a corresponding set of definitions to the similar model of thebuilding element entity, wherein the models of the building elemententities represent real-world building articles used in constructionsites.
 16. A non-transitory computer-readable storage medium with acomputer program stored thereon, wherein the execution of the computerprogram on a computer makes the computer implement the following steps:defining a set of similarity conditions based on a first objectrepresenting a real-world article modeled by using the software product,the set of similarity conditions comprising at least one similaritycondition defining upon a situation being similar enough with a firstsituation; defining a set of definitions indicating explicitly orinexplicitly one or more definitions of which at least one will beapplied, the definitions being de-fined by means of software product;searching for a second object fulfilling the set of similarityconditions, the second object representing another real-world articlemodeled by using the software product; and applying the set ofdefinitions, wherein if the set of definitions relates to the similarsituation they are applied to the first situation and if the set ofdef-initions relates to the first situation, they are applied to thesimilar situation.
 17. The non-transitory computer-readable storagemedium according to claim 16, wherein the set of definitions is relatedto the first object; and the execution of the computer program on thecomputer makes the computer apply the set of definitions to the secondobject.
 18. The non-transitory computer-readable storage mediumaccording to claim 16, wherein the set of definitions is related to thesecond object; and the execution of the computer program on the computermakes the computer apply the set of definitions of the second object tothe first object.
 19. A computer system comprising: a computercomprising at least one processor, and at least one memory includingcomputer program code, the at least one memory and the computer programcode configured to, with the at least one processor, cause the computerat least to: create a first and a second object both representingreal-world articles; define at least one definition for the firstobject; identify whether situations of the first and the second objectare similar enough; and apply a definition of the first object to thesecond object in response to the situations being similar enough. 20.The computer system according to claim 16, further comprising at leastone of the following: a model stored in one of the at least one memoryand an external memory, an internal databank of the system, and adatabank in the Internet, wherein the at least one memory and thecomputer program code configured to, with the at least one processor,further cause the computer to search for objects in similar enoughsituations at least from one of the model, the internal databank and thedatabank in the Internet.